// 引入所需的模块
const {
	writeFileSync,
	readFileSync,
	existsSync
} = require('fs');

// 定义 ConvertPagesPlugin 类
module.exports = class ConvertPagesPlugin {
	constructor({
		rootPath,
		writePath,
		writeName
	}) {
		this.rootPath = rootPath; // 存储根路径
		this.writePath = writePath; // 存储写入路径
		this.writeName = writeName; // 存储写入文件名
	}

	apply(compiler) {
		compiler.hooks.emit.tap('ConvertPagesPlugin', (compilation) => {
			// try {
			// 	// 读取 pages.json 文件内容，解析为 JSON 格式，并获取 tabBar.list 中每个元素的 pagePath 值
			// 	const pagesObject = JSON.parse(readFileSync(`${this.rootPath}/pages.json`, 'utf-8'));
			// 	const tabBarPages = pagesObject.tabBar.list.map(item => `'${item.pagePath}'`);

			// 	// 拼接生成 tabBarPagesString 字符串并写入指定文件
			// 	const tabBarPagesString = `export const tabBarPages = [${tabBarPages}];`;
				
			// 	//开始写入this.writeName
			// 	const filePath = `${this.rootPath}/${this.writePath}/${this.writeName}`;
			// 	if (existsSync(filePath)) {
			// 		const appExtPage = readFileSync(filePath, 'utf-8');
			// 		if (appExtPage !== tabBarPagesString) {
			// 			writeFileSync(filePath, tabBarPagesString);
			// 			console.log(`【ConvertPagesPlugin插件】文件改动写入成功：${filePath}`);
			// 		} else {
			// 			console.log(`【ConvertPagesPlugin插件】页面内容无变化，文件路径：${filePath}`);
			// 		}
			// 	} else {
			// 		writeFileSync(filePath, tabBarPagesString);
			// 		console.log(`【ConvertPagesPlugin插件】指定文件不存在，已新建文件并写入：${filePath}`);
			// 	}
			// } catch (error) {
			// 	console.error(`【ConvertPagesPlugin插件】出现错误：${error.message}`)
			// }
		});
	}
}